<?php
class UserAuthHelper
{
	/**  验证用户登陆  */
	public static function doLogin($usernm, $passwd)
	{
		$user	=	User::getByUsername($usernm);
		if($user && 0===strcmp(self::encrypt($passwd), $user['password']))
		{
			self::recordLogin($user);
			return true;
		}
		else
		{
			return false;
		}
	}
	public static function doLogout()
	{
		unset($_SESSION['USER']);
		return true;
	}
	
	/**  检查用户是否需要登陆  */
	public static function authenticate()
	{
		if(empty($_SESSION['USER']))
		{
			Controller::redirect('user-login/r/'.base64_encode($_SERVER['REQUEST_URI']));
		}
	}
	
	/** 是否登陆 */
	public static function isLogin()
	{
		return empty($_SESSION['USER']) ? false : true;
	}
	public static function uid()
	{
		return empty($_SESSION['USER']) ? false : $_SESSION['USER']['uid'];
	}
	
	/**  用于加密密码  */
	public static function encrypt($passwd)
	{
		return md5($passwd);
	}

	/**
	 * 简单的验证当前用户是否为管理员
	 */
	public static function isAdmin()
	{
		return (!empty($_SESSION['USER']) && $_SESSION['USER']['uid']==1) ? true : false;
	}
	
	//------------------PROTECTED METHOD BELOW---------------------
	
	/**  追加用户登陆记录 和session */
	protected static function recordLogin(array $user)
	{
		$_SESSION['USER']	=	$user;
		//可以再做其它操作
		
		return true;
	}
	
}
?>